#ifndef JSON_STRING_H
#define JSON_STRING_H

#include <QString>

namespace JsonString {
    // 原始JSON格式消息
    const QString HEART_BEAT = R"(
    {
        "type" : "heartbeat"
    })";

    const QString AUTO_START = R"(
    {
        "mode" : "auto",
        "command" : "start"
    })";

    const QString AUTO_STOP = R"(
    {
        "mode" : "auto",
        "command" : "stop"
    })";

    const QString AUTO_PAUSE = R"(
    {
        "mode" : "auto",
        "command" : "pause"
    })";

    const QString AUTO_MANUAL = R"(
    {
        "mode" : "auto",
        "command" : "switch",
        "target" : "manual"
    })";

    const QString MANUAL_AUTO = R"(
    {
        "mode" : "manual",
        "command" : "switch",
        "target" : "auto"
    })";

    const QString MANUAL_GRIPPER_OPEN_L = R"(
    {
        "mode" : "manual",
        "command" : "gripper",
        "side" : "L",
        "control" : "open"
    })";

    const QString MANUAL_GRIPPER_CLOSE_L = R"(
    {
        "mode" : "manual",
        "command" : "gripper",
        "side" : "L",
        "control" : "close"
    })";

    const QString MANUAL_GRIPPER_OPEN_R = R"(
    {
        "mode" : "manual",
        "command" : "gripper",
        "side" : "R",
        "control" : "open"
    })";
    
    const QString MANUAL_GRIPPER_CLOSE_R = R"(
    {
        "mode" : "manual",
        "command" : "gripper",
        "side" : "R",
        "control" : "close"
    })";

    const QString MANUAL_MOVE_F = R"(
    {
        "mode" : "manual",
        "command" : "move",
        "direction" : "F"
    })";

    const QString MANUAL_MOVE_B = R"(
    {
        "mode" : "manual",
        "command" : "move",
        "direction" : "B"
    })";

    const QString MANUAL_MOVE_L = R"(
    {
        "mode" : "manual",
        "command" : "move",
        "direction" : "L"
    })";

    const QString MANUAL_MOVE_R = R"(
    {
        "mode" : "manual",
        "command" : "move",
        "direction" : "R"
    })";

    const QString MANUAL_ROBOT_EN = R"(
    {
        "mode" : "manual",
        "command" : "enable"
    })";

    const QString MANUAL_ROBOT_DISABLE = R"(
    {
        "mode" : "manual",
        "command" : "disable"
    })";

    const QString MANUAL_ARM_XI_L = R"(
    {
        "mode" : "manual",
        "command" : "arm",
        "side" : "L",
        "control" : "X+"
    })";

    const QString MANUAL_ARM_XD_L = R"(
    {
        "mode" : "manual",
        "command" : "arm",
        "side" : "L",
        "control" : "X-"
    })";

    const QString MANUAL_ARM_YI_L = R"(
    {
        "mode" : "manual",
        "command" : "arm",
        "side" : "L",
        "control" : "Y+"
    })";

    const QString MANUAL_ARM_YD_L = R"(
    {
        "mode" : "manual",
        "command" : "arm",
        "side" : "L",
        "control" : "Y-"
    })";

    const QString MANUAL_ARM_ZI_L = R"(
    {
        "mode" : "manual",
        "command" : "arm",
        "side" : "L",
        "control" : "Z+"
    })";

    const QString MANUAL_ARM_ZD_L = R"(
    {
        "mode" : "manual",
        "command" : "arm",
        "side" : "L",
        "control" : "Z-"
    })";

    const QString MANUAL_ARM_RXI_L = R"(
    {
        "mode" : "manual",
        "command" : "arm",
        "side" : "L",
        "control" : "Rx+"
    })";
    
    const QString MANUAL_ARM_RXD_L = R"(
    {
        "mode" : "manual",
        "command" : "arm",
        "side" : "L",
        "control" : "Rx-"
    })";
    
    const QString MANUAL_ARM_RYI_L = R"(
    {
        "mode" : "manual",
        "command" : "arm",
        "side" : "L",
        "control" : "Ry+"
    })";
    
    const QString MANUAL_ARM_RYD_L = R"(
    {
        "mode" : "manual",
        "command" : "arm",
        "side" : "L",
        "control" : "Ry-"
    })";
    
    const QString MANUAL_ARM_RZI_L = R"(
    {
        "mode" : "manual",
        "command" : "arm",
        "side" : "L",
        "control" : "Rz+"
    })";
    
    const QString MANUAL_ARM_RZD_L = R"(
    {
        "mode" : "manual",
        "command" : "arm",
        "side" : "L",
        "control" : "Rz-"
    })";

    const QString MANUAL_ARM_XI_R = R"(
    {
        "mode" : "manual",
        "command" : "arm",
        "side" : "R",
        "control" : "X+"
    })";
    
    const QString MANUAL_ARM_XD_R = R"(
    {
        "mode" : "manual",
        "command" : "arm",
        "side" : "R",
        "control" : "X-"
    })";
    
    const QString MANUAL_ARM_YI_R = R"(
    {
        "mode" : "manual",
        "command" : "arm",
        "side" : "R",
        "control" : "Y+"
    })";
    
    const QString MANUAL_ARM_YD_R = R"(
    {
        "mode" : "manual",
        "command" : "arm",
        "side" : "R",
        "control" : "Y-"
    })";
    
    const QString MANUAL_ARM_ZI_R = R"(
    {
        "mode" : "manual",
        "command" : "arm",
        "side" : "R",
        "control" : "Z+"
    })";
    
    const QString MANUAL_ARM_ZD_R = R"(
    {
        "mode" : "manual",
        "command" : "arm",
        "side" : "R",
        "control" : "Z-"
    })";
    
    const QString MANUAL_ARM_RXI_R = R"(
    {
        "mode" : "manual",
        "command" : "arm",
        "side" : "R",
        "control" : "Rx+"
    })";
        
    const QString MANUAL_ARM_RXD_R = R"(
    {
        "mode" : "manual",
        "command" : "arm",
        "side" : "R",
        "control" : "Rx-"
    })";
        
    const QString MANUAL_ARM_RYI_R = R"(
    {
        "mode" : "manual",
        "command" : "arm",
        "side" : "R",
        "control" : "Ry+"
    })";
        
    const QString MANUAL_ARM_RYD_R = R"(
    {
        "mode" : "manual",
        "command" : "arm",
        "side" : "R",
        "control" : "Ry-"
    })";
        
    const QString MANUAL_ARM_RZI_R = R"(
    {
        "mode" : "manual",
        "command" : "arm",
        "side" : "R",
        "control" : "Rz+"
    })";
        
    const QString MANUAL_ARM_RZD_R = R"(
    {
        "mode" : "manual",
        "command" : "arm",
        "side" : "R",
        "control" : "Rz-"
    })";
}

#endif